Программирование драйверов Windows

Секции [DDInstall]


Для каждой модели, указанной в секции описания моделей аппаратуры данного поставщика, следует сделать ссылку на секцию описания собственно установки программного обеспечения драйвера &#8212 секции [DDInstall]. Конкретное название этой секции устанавливает разработчиком драйвера и, в общем случае, должно быть уникальным для каждой модели каждого производителя из тела каждой секции описания моделей. Однако бывают случаи, когда одному драйверу удается обслуживать сразу несколько моделей PnP устройств, предоставляющих при подключении разные идентификаторы. В таких случаях возможна ситуация, когда одна секция типа [DDInstall] соответствует сразу нескольким ссылкам из секции описания моделей.

Основные директивы секции [DDInstall] перечисляются в таблице 12.3. По поводу использования остальных следует обратиться к документации пакета DDK.

Таблица 12.3. Элементы секции [DDInstall]



Записи Значения
DriverVer mm/dd/yyyy[,x.y.v.z]

Здесь версия драйвера может быть введена через запятую после указания даты

CopyFiles Любое имя секции, указывающей имена файлов для инсталляции, либо конкретное имя файла, предваряемое префиксом @
CopyInf Директива, определяющая копирование inf-файлов на целевой диск. Введена только в Windows XP.
AddReg Обязательна для ввода. Перечисляет имена секций, где содержится информация, предназначенная для занесения в Системный Реестр во время инсталляции.
Include Указатель на другие INF файлы, необходимые для данной инсталляции
Needs Подмножество/а записи Include (выше), перечисляющее имена всех необходимых секций (считая все включаемые INF файлы).
DelFiles Указывает имена других секций, которые перечисляют файлы, подлежащих удалению в целевой директории (обычно, в процессе обновления, upgrade).
RenFiles Указывает имена других секций, которые перечисляют файлы, подлежащих переименованию перед инсталляцией (обычно, чтобы сохранить состояние предыдущей инсталляции). Об организации секций, описывающих переименование см. подробнее в документации DDK.
DelReg Указывает имена других секций, которые содержат информацию, что именно следует удалить из Системного Реестра при инсталляции
<
В то время, как AddReg требуется только с точки зрения синтаксиса, директива CopyFiles является весьма значимой директивой секции [DDInstall]. Директива CopyFiles имеет форму

CopyFiles = file_list_section[,file_list_section...]

либо

CopyFiles=@filename

Первый из двух вышеприведенных вариантов является более емким, поскольку позволяет косвенно указать другую секцию, где содержится список файлов, подлежащих инсталляции. Однако для простых инсталляций, непосредственное указание имени файла успешно справляется с этой задачей. Назначение AddReg и CopyFiles

более проясняется в нижеследующих частях данной главы.

Когда имя секции [DDInstall] упоминается в ссылке из секции описания модели, то суффиксы, задающие версию системы, применять не следует. В момент ссылки в директивах секций описания моделей имя секции [DDInstall] задается универсально, одинаково для всех типов операционных систем (без стандартных суффиксов, типа .NT или .NTx86). Зато, в начале собственно тела секции, имя [DDInstall] секции может быть декорировано одним из суффиксов типа .nt, .ntx86 или ntia64, что означает принятие к исполнению данной секции только в соответствующей операционной системе. Пример ниже демонстрирует, что конкретизация происходит в момент описания собственно секции [DDInstall].

[Manufacturer] %MSFT%=MSFT

[MSFT] %_MCADesc%=_MCA_Inst, _MCA0000

[_MCA_Inst.ntx86] CopyFiles = _MCA.Files.x86_12

Здесь в секции моделей [MSFT] введена ссылка на [DDInstall] секцию с конкретным именем _MCA_Inst, и эта секция была введена только для использования в Windows NT. Поэтому имя было декорировано суффиксом .NTx86, что в результате выглядит как [_MCA_Inst.ntx86].


Содержание раздела